package resource

// Subsystem 将 cgroup 抽象成 path，因为在 hierarchy 中，cgroup 便是虚拟文件系统中的虚拟路径
// Set、Apply、Remove 这 3 个接口都判断一下，如果没有传配置信息进来就不处理，直接返回。
type Subsystem interface {
	// Name 返回 fs 名字，如 cpu，memory
	Name() string
	// Set 设置 cgroup 在这个 fs 中的资源限制
	Set(cgroupPath string, res *ResourceConfig) error
	// Apply 将某个进程添加到 cgroup 中
	Apply(cgroupPath string, pid int) error
	// Remove 移除这个 cgroup 资源限制
	Remove(cgroupPath string) error
}
